package com.ym.im.service.group.service;

import com.ym.im.common.ResponseVO;
import com.ym.im.service.group.model.req.*;
import com.ym.im.service.group.model.resp.GetRoleInGroupResp;

import java.util.Collection;
import java.util.List;

public interface ImGroupMemberService {

    // 导入群成员
    public ResponseVO importGroupMember(ImportGroupMemberReq req);

    // 添加群成员[拉人入群]
    public ResponseVO addMember(AddGroupMemberReq req);

    // 添加群成员
    public ResponseVO addGroupMember(String groupId, Integer appId, GroupMemberDto dto);
    // 查询群成员的角色
    ResponseVO<GetRoleInGroupResp> getRoleInGroupOne(String groupId, String memberId, Integer appId);

    ResponseVO<List<GroupMemberDto>> getGroupMember(String groupId, Integer appId);

    /**
     * 获取连接到群的成员
     * @param req
     * @return
     */
    public ResponseVO<Collection<String>> getMemberJoinedGroup(GetJoinedGroupReq req);


    public ResponseVO transferGroupMember(String owner, String groupId, Integer appId);

    public ResponseVO updateGroupMember(UpdateGroupMemberReq req);


    ResponseVO removeMember(RemoveGroupMemberReq req);

    ResponseVO removeGroupMember(String groupId, Integer appId, String memberId);

    public ResponseVO speak(SpeaMemberReq req);
}
